<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

<!-- 
     # http(了解)

    ## 简介

        - HTTP协议是Hyper Text Transfer Protocol（超文本传输协议）的缩写, 适用于从万维网（WWW:World Wide Web ）服务器传输超文本到本地浏览器的传送协议。
        - HTTP是一个基于TCP / IP通信协议来传递数据（HTML 文件, 图片文件, 查询结果等）。
        - HTTP协议工作于客户端 - 服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端(即WEB服务器)发送所有请求。Web服务器根据接收到的请求后，向客户端发送响应信息。

    ## 主要特点

        - 简单快速：客户向服务器请求服务时，只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单，使得HTTP服务器的程序规模小，因而通信速度很快。
        - 灵活：HTTP允许传输任意类型的数据对象。正在传输的类型由Content - Type加以标记。
        - 无连接：无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求，并收到客户的应答后，即断开连接。采用这种方式可以节省传输时间。
        - 无状态：HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息，则它必须重传，这样可能导致每次连接传送的数据量增大。另一方面，在服务器不需要先前信息时它的应答就较快。
        - 支持B / S(Browser => Server)及C / S(Client => Server)模式。


    ## HTTP之请求消息Request
    客户端发送一个HTTP请求到服务器的请求消息包括以下格式：
    
        - 请求行（request line）用来说明请求类型等
        
        - 请求头部（header）用来说明服务器要使用的附加信息
        
        - 空行
        
        - 请求数据(请求时携带的数据) get=> (queryString) post=>(Form Data)
        
        a. 以get方式传递数据时,将参数数据队列拼接在地址栏之后,用 ? 分隔
        
        b.以post方式传递数据时,利用http post传输机制,将数据放在请求主体中在header传递,地址栏看不到

    ## HTTP之响应消息Response
    
        一般情况下，服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
        HTTP响应也由四个部分组成，分别是：
        - 状态行
        - 响应头部
        - 空行
        - 响应正文 (服务端返回的响应数据 responseText)


    ## HTTP工作原理 / 在浏览器的地址栏输出url之后  浏览器做了哪些操作
        1. DNS解析 (对应域名找到服务器的ip地址) 
        2. 客户端连接到Web服务器 (建立TCP链接  -> TCP 3次握手)
        3. 发送HTTP请求(通过TCP套接字，客户端向Web服务器发送一个文本的请求报文，一个请求报文由请求行、请求头部、空行和请求数据4部分组成。)
        4. 服务器接受请求并返回HTTP响应(一个响应由状态行、响应头部、空行和响应数据4部分组成。)
        5. 断开链接(断开TCP链接  ->  TCP 4次挥手)
        6. 客户端浏览器解析HTML内容



    建立TCP链接: TCP 3次握手


    断开TCP链接: TCP 4次挥手



 -->

</html>